<template>
  <div class="box">
    <h2>Son1 {{$store.state.title}}</h2>
    从vuex中获取的值: <label>{{ $store.state.count }}</label>
    <br>
    <button @click="add(1)">值 + 1</button>
    <button @click="add(10)">值 + 10</button>
    <button @click="fn">修改标题</button>
    <button @click="fn2">异步修改数据</button>
  </div>
</template>

<script>
import { mapActions } from 'vuex'

export default {
  name: 'Son1Com',
  methods: {
    add(value) {
      // 下面直接修改全局状态的数据 不让使用，因为vuex也是单向数据了
      // this.$store.state.count++
      // commit就是vuex里面提交修改的一样， 也可以说是 提交mutations去修改vuex的值
      // this.$store.commit('addCountMutations')
      this.$store.commit('addCountMutations', value)
    },
    fn() {
      this.$store.commit('updateTitleMutation')
    },
    fn2() {
      //  this.$store.commit('updateCountMutations', 666)
      // 因为调用actions里面的方法，需要使用 派发 dispatch
      // this.$store.dispatch('updateCountActions', 666)
      this.updateCountActions(666)
    },
    ...mapActions(['updateCountActions'])
  }
}
</script>

<style lang="css" scoped>
.box{
  border: 3px solid #ccc;
  width: 400px;
  padding: 10px;
  margin: 20px;
}
h2 {
  margin-top: 10px;
}
</style>